如何给Knife4j贡献文档和代码
作为一个开源项目,Knife4j 的成长离不开社区贡献者的支持和参与。我们非常欢迎广大社区用户为 Knife4j 贡献代码、文档或改进网站,在此过程中,我们愿意为您提供必要的支持。
如何贡献文档
我们欢迎您参与Knife4j
项目。有很多贡献方式,包括回答有关issues的问题,编写新代码,改进现有代码,协助编写文档,开发示例或教程,报告错误或仅提出建议。有关更多信息,请参见我们的贡献文档。
如何贡献文档
目前Knife4j的新版本文档开发者可以直接通过编写Markdown文档的方式执行参与文档贡献。你的文档贡献能帮助到每一个使用Knife4j的人,社区的壮大离不开每个开发者的贡献。
Knife4j的文档通过Docusaurus进行编写,文档源码位于Knife4j项目dev分支下的knife4j-doc
目录
主要步骤:
1、开发者对仓库进行fork操作,然后pull到本地
2、本地安装Docusaurus ,具体可以参考官方文档
需要安装Node环境,Node版本必须符合Docusaurus要求
3、安装本地依赖npm install
4、运行Knife4j-doc文档查看效果npm run start
文档目录说明:
目前Knife4j-doc文档中主要包含4个顶级目录:
目录名称 | 说明 |
---|---|
middleware | 中间件 |
middleware-sources | 中间件 |
features | 增强属性 |
action | 实战指南,欢迎开发者贡献所有关于Knife4j实战部分的文章 |
oas | OAS规范,OAS规范介绍,可以包含不同语言端的注解或说明 |
changelog | Knife4j详细更新日志 |
faq | FAQ问题列表 |
每个不同的目录中,开发者只需要在该目录创建markdown文档即可,一篇markdown文档即代表一篇文档说明,最终在docusaurus.config.js
中添加该markdown文档到相应的目录显示即可
如果有更多的实战文档,开发者可以现在action
目录创建好与之对应的Markdown文档,然后在这里自行添加目录
需要注意的是,如果篇幅中有图片,且不是网络图片,贡献者可以将图片放在static/images的目录中.
文档写完后,就可以在Knife4j的Gitee仓库中向作者发起PR请求了,需要将PR请求提交到dev分支!!!
社区贡献
点亮Star,照亮Knife4j开源之路!! https://gitee.com/xiaoym/knife4j https://github.com/xiaoymin/knife4j 发表你的看法:Knife4j论坛 认领开发任务:Issues 完善Knife4j文档 在你自己的博客、微博、微信公众号、vlog 等自媒体分享有关 Knife4j 的一切。也非常欢迎将实战内容通过PR进行贡献合并在Knife4j的官方文档进行展示。 把Knife4j分享给更多的人
开源贡献
Knife4j仓库结构说明
knife4j-desktop:Knife4j的独立中间件,基于Java编写,可以独立运行渲染OpenAPI规范文件 knife4j-doc: 官网文档,基于Docusaurus进行编写 knife4j-vue: 前端源码,基于Vue2框架编写 knife4j: Java端代码,包括所有公开使用的starter组件封装
指导方针
在开始进行功能或者修复Bug之前,事先请在Github、Gitee平台上搜索与之相关的功能是否已经实现,或着也可以通过Github、Gitee平台的issue与我们取得联系。以确保该任务没有其他人在处理,避免重复操作。 所有功能可通过Github或者Gitee的issues进行沟通讨论,避免浪费大家的时间。 如果是重大功能更新,建议你在编码开发的同时,将该功能的设计、思想、实现以及使用说明通过文档进行输出。最好是合并在Knife4j的官方文档上 提交PR时,需要将PR请求提交到dev分支!!!
调试代码
目前knife4j-vue是前端代码,基于Vue2框架编写编写
开发者如果想贡献代码或者自己改造,得启动此项目进行调试
1、环境准备
首先,开发者本地需要安装Node环境,目前该版本的Node依赖比较低,作者本地使用的版本是v15.14.0
,可以通过nvm
工具切换安装不同的node版本,高版本的Node目前可能会存在问题,保持一致即可
2、安装依赖
执行命令
npm install
3、后端接口准备
目前Knife4j组件还是以Java生态为主,所以在调试获取OpenAPI数据源时,是根据解析框架做兼容适配,主要是两个框架:
springfox:提供Swagger2规范的解析,在Spring Boot框架生态下提供服务,参考demo工程:knife4j-spring-boot27-demo springdoc:提供OpenAPI3规范的解析,在Spring Boot框架生态下提供服务,参考demo工程:knife4j-springdoc-openapi-demo
而Knife4j-vue前端代码目前还是比较笨拙的方式,主要体现在knife4j-vue/src/layouts/BasicLayout.vue
文件中
在create()
方法时会存在区别
created() {
// 调试springdoc框架时,使用该方法,注释下面的this.initKnife4jSpringUi()方法
this.initSpringDocOpenApi();
// 调试springfox框架时,使用该方法,注释上面的 this.initSpringDocOpenApi()方法
//this.initKnife4jSpringUi();
this.initI18n();
},
这种方法在打包构建时,也同样如此
4、服务端代理端口
在knife4j-vue/vue.config.js
配置文件中,修改proxy
节点下的配置
在上面springfox和springdoc两个demo工程下,服务启动后,修改为相应的端口即可
devServer: {
watchOptions: {
ignored: /node_modules/
},
proxy: {
"/": {
// 代理服务端端口
target: 'http://localhost:8990/',
ws: true,
changeOrigin: true
}
}
},
本文原文参考
文档贡献:https://doc.xiaominfo.com/docs/community/joinus 代码贡献:https://doc.xiaominfo.com/docs/community/contributing
点击阅读原文即可查看文中的链接